import game.GameFactory;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Main {

    public static void main(String[] args) {
        // 创建一个新窗口
        final JFrame frameOfLauncher = new JFrame("Launcher");

        // 设置窗口
        frameOfLauncher.setSize(400, 400); // 窗口大小
        frameOfLauncher.setLocationRelativeTo(null); // 相对位置
        // 设置组件容器

        JPanel panelOfOfLauncher = new JPanel(); // 组件容器

        JButton buttonOfStartGame = new JButton("开始游戏"); // 开始游戏按钮
        buttonOfStartGame.addActionListener(new ActionListener() { // 按钮事件回调函数
            @Override
            public void actionPerformed(ActionEvent e) { // 点击按钮，隐藏主窗口并显示新窗口
                frameOfLauncher.setVisible(false); // 隐藏主窗口
                JFrame game = GameFactory.makeGame(frameOfLauncher);
                game.setVisible(true); // 显示窗口
            }
        });
        JButton buttonOfExit = new JButton("退出启动器"); // 退出按钮
        buttonOfExit.addActionListener(new ActionListener() { // 按钮事件回调函数
            @Override
            public void actionPerformed(ActionEvent e) { // 关闭启动器
                System.exit(0); // 关闭启动器
            }
        });
        panelOfOfLauncher.add(buttonOfStartGame); // 将按钮放入容器中
        panelOfOfLauncher.add(buttonOfExit); // 将按钮放入容器中
        frameOfLauncher.setContentPane(panelOfOfLauncher); // 设置窗口的容器
        // 注册事件
        frameOfLauncher.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); // 关闭窗口时，销毁线程
        // 最后，显示窗口
        frameOfLauncher.setVisible(true);
    }

}
